home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / TURB_VIS / ALEXLEVI / DEMO / DEMO_KBD.ASM < prev    next >
Assembly Source File  |  1994-04-12  |  2KB  |  87 lines

  1.  
  2. ;
  3. ;****************************************************************************
  4. ;*                                                                          *
  5. ;*     This procedure was made by Alex Levitas' "Keyboard Map Editor".      *
  6. ;*                                                                          *
  7. ;****************************************************************************
  8. ;
  9. ; This procedure convert single character from standard keyboard map to new.
  10. ;
  11. ; May be used after reading single character from keyboard. Use after
  12. ; INT 16h function calls.
  13. ;
  14. ; Procedure has one parameter - character to be converted - in AL register
  15. ;
  16. ; To use this procedure in your program, insert the directive
  17. ;
  18. ;    INCLUDE DEMO_KBD.ASM
  19. ;
  20. ; If you want to use more than one keyboard map in your program, you
  21. ; must change procedure name in each source file.
  22. ;
  23.  
  24. ConvertChar PROC FAR
  25.  
  26.  PUSHF
  27.  PUSH ES
  28.  PUSH DI
  29.  PUSH CX
  30.  
  31.  PUSH CS
  32.  POP  ES
  33.  MOV  DI, OFFSET $ + 29h
  34.  
  35.  MOV  ES:[DI + 184d], AL
  36.  
  37.  MOV  CX, 92d
  38.  CLD
  39.  REPNE
  40.       SCASB
  41.  
  42.  PUSHF
  43.  POP  CX
  44.  XCHG CL, CH
  45.  MOV  CL, 14
  46.  SHR  CX, CL
  47.  AND  CX, 1
  48.  XOR  CX, 1
  49.  ADD  DI, CX
  50.  
  51.  ADD  DI, 91d
  52.  MOV  AL, ES:[DI]
  53.  
  54.  POP  CX
  55.  POP  DI
  56.  POP  ES
  57.  POPF
  58.  
  59.  RET
  60.  
  61. ; Keyboard chars
  62.  
  63. DB 126d, 96d, 33d, 49d, 64d, 50d, 35d, 51d, 36d, 52d, 37d, 53d, 94d, 54d, 38d
  64. DB  55d, 42d, 56d, 40d, 57d, 41d, 48d, 95d, 45d, 43d, 61d, 81d,113d, 87d,119d
  65. DB  69d,101d, 82d,114d, 84d,116d, 89d,121d, 85d,117d, 73d,105d, 79d,111d, 80d
  66. DB 112d,123d, 91d,125d, 93d, 65d, 97d, 83d,115d, 68d,100d, 70d,102d, 71d,103d
  67. DB  72d,104d, 74d,106d, 75d,107d, 76d,108d, 58d, 59d, 34d, 39d, 90d,122d, 88d
  68. DB 120d, 67d, 99d, 86d,118d, 66d, 98d, 78d,110d, 77d,109d, 60d, 44d, 62d, 46d
  69. DB  63d, 47d
  70.  
  71. ; Convert chars
  72.  
  73. DB 126d, 96d, 33d, 49d, 34d, 50d, 58d, 51d, 47d, 52d, 37d, 53d, 44d, 54d, 46d
  74. DB  55d, 63d, 56d, 40d, 57d, 41d, 48d, 95d, 45d, 43d, 61d,137d,169d,150d,230d
  75. DB 147d,227d,138d,170d,133d,165d,141d,173d,131d,163d,152d,232d,153d,233d,135d
  76. DB 167d,149d,229d,154d,234d,148d,228d,155d,235d,130d,162d,128d,160d,143d,175d
  77. DB 144d,224d,142d,174d,139d,171d,132d,164d,134d,166d,157d,237d,159d,239d,151d
  78. DB 231d,145d,225d,140d,172d,136d,168d,146d,226d,156d,236d,129d,161d,158d,238d
  79. DB 240d,241d
  80.  
  81. ; Old char
  82.  
  83. DB 0FFh
  84.  
  85. ENDP
  86.  
  87.